package com.example.service.impl;

import com.example.annotation.DataSource;
import com.example.entity.User;
import com.example.enums.DataSourceType;
import com.example.mapper.UserMapper;
import com.example.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * com.example.service.impl.UserServiceImpl
 *
 * @author ZRS
 * @version V1.0
 * @since 2025/10/30 22:32
 */
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    // 默认使用主库（写操作）
    @Override
    public boolean saveUser(User user) {
        return userMapper.insert(user) > 0;
    }

    // 手动指定使用从库（读操作）
    @DataSource(DataSourceType.SLAVE)
    @Override
    public User getUserById(Integer id) {
        return userMapper.selectById(id);
    }

    // 如果配置了自动识别读写操作，也可以不使用注解
    @Override
    public List<User> listAllUsers() {
        return userMapper.selectList(null);
    }
}
